home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / vbcc / machines / amigappc / libsrc / stdio / fclose.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-06-24  |  715 b   |  28 lines

  1. /*
  2. ** vbcc-Amiga-PowerPC version of fclose.c
  3. **
  4. ** v0.1 04.10.97 phx
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <powerup/gcclib/powerup_protos.h>
  9.  
  10. extern char *_stdin,*_stdout,*_stderr;
  11. extern FILE *_firstfile,*_lastfile;
  12.  
  13. /* closes files */
  14. /* still very simple */
  15. int fclose(FILE *f)
  16. {
  17.     if(!f) return(EOF);
  18.     if(!f->filehandle) return(EOF);
  19.     fflush(f);
  20.     if(f->filehandle!=_stdin&&f->filehandle!=_stdout&&f->filehandle!=_stderr)
  21.         PPCClose((BPTR)f->filehandle);  /* evaluate return code here */
  22.     if(f->prev) f->prev->next=f->next; else _firstfile=f->next;
  23.     if(f->next) f->next->prev=f->prev; else _lastfile=f->prev;
  24.     if(f->base&&!(f->flags&_NOTMYBUF)) free(f->base-1);
  25.     free(f);
  26.     return(0);
  27. }
  28.